package models

// Market 外部API市场信息
type Market struct {
	StatusId     int         `json:"status_id"`
	Region       string      `json:"region"`
	Status       string      `json:"status"`
	TimeZone     string      `json:"time_zone"`
	TimeZoneDesc interface{} `json:"time_zone_desc"`
	DelayTag     int         `json:"delay_tag"`
}

// Quote 外部API行情信息
type Quote struct {
	Symbol             string   `json:"symbol"`
	Code               string   `json:"code"`
	Exchange           string   `json:"exchange"`
	Name               string   `json:"name"`
	Type               int      `json:"type"`
	SubType            *string  `json:"sub_type"`
	Status             int      `json:"status"`
	Current            float64  `json:"current"`
	Currency           string   `json:"currency"`
	Percent            float64  `json:"percent"`
	Chg                float64  `json:"chg"`
	Timestamp          int64    `json:"timestamp"`
	Time               int64    `json:"time"`
	LotSize            int      `json:"lot_size"`
	TickSize           float64  `json:"tick_size"`
	Open               float64  `json:"open"`
	LastClose          float64  `json:"last_close"`
	High               float64  `json:"high"`
	Low                float64  `json:"low"`
	AvgPrice           float64  `json:"avg_price"`
	Volume             int64    `json:"volume"`
	Amount             float64  `json:"amount"`
	TurnoverRate       float64  `json:"turnover_rate"`
	Amplitude          float64  `json:"amplitude"`
	MarketCapital      float64  `json:"market_capital"`
	FloatMarketCapital *float64 `json:"float_market_capital"`
	TotalShares        int64    `json:"total_shares"`
	FloatShares        int64    `json:"float_shares"`
	IssueDate          int64    `json:"issue_date"`
	LockSet            *int     `json:"lock_set"`
	CurrentYearPercent float64  `json:"current_year_percent"`
}

// QuoteOthers 行情扩展信息
type QuoteOthers struct {
	CybSwitch bool `json:"cyb_switch"`
}

// QuoteItems 行情条目
type QuoteItems struct {
	Market Market        `json:"market"`
	Quote  Quote         `json:"quote"`
	Others QuoteOthers   `json:"others"`
	Tags   []interface{} `json:"tags"`
}

// QuoteData 行情数据部分
type QuoteData struct {
	Items     []QuoteItems `json:"items"`
	ItemsSize int          `json:"items_size"`
}

// QuoteResponse 完整的行情响应
type QuoteResponse struct {
	Data             QuoteData `json:"data"`
	ErrorCode        int       `json:"error_code"`
	ErrorDescription string    `json:"error_description"`
}
